package ar.com.javiproyects.polla.entidades.loteria;

import java.io.Serializable;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "T_SORTEO_LOTERIA")
public class SorteoLoteria implements Serializable {

	private static final long serialVersionUID = 1L;

	public Integer id;
	private Date fecha;
	private TipoLoteria loteria;
	private EdicionLoteria edicion;
	private List<ComponentSorteoLoteria> componentes;

	public SorteoLoteria() {
		this.componentes = new ArrayList<ComponentSorteoLoteria>();
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "P_ID")
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "A_FECHA", nullable=false)
	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	@ManyToOne
	@JoinColumn(name="F_TIPO_LOTERIA_P_ID", nullable=false)
	public TipoLoteria getLoteria() {
		return loteria;
	}

	public void setLoteria(TipoLoteria loteria) {
		this.loteria = loteria;
	}

	@ManyToOne
	@JoinColumn(name="F_EDICION_LOTERIA_P_ID", nullable=false)
	public EdicionLoteria getEdicion() {
		return edicion;
	}

	public void setEdicion(EdicionLoteria edicion) {
		this.edicion = edicion;
	}

	@ManyToMany
	@JoinTable(name = "T_COMPONENTE_SORTEO_LOTERIA", joinColumns = { @JoinColumn(name = "F_SORTEO_LOTERIA_P_ID") }, inverseJoinColumns = { @JoinColumn(name = "F_COMP_LOTERIA_P_ID") })
	public List<ComponentSorteoLoteria> getComponentes() {
		return componentes;
	}

	public void setComponentes(List<ComponentSorteoLoteria> componentes) {
		this.componentes = componentes;
	}

}